package com.ziroom.crm.mq.core.support;

import com.ziroom.crm.mq.core.data.Message;
import com.ziroom.crm.mq.core.processor.QueueWrapper;

public interface ProcessorInvokerDelegate {

    /**
     * 执行前置触发
     *
     * @param queueWrapper
     * @param message
     */
    void preSendInvoke(QueueWrapper queueWrapper, Message message);

    /**
     * 执行后置处理
     *
     * @param queueWrapper
     * @param message
     */
    void postSendInvoke(QueueWrapper queueWrapper, Message message);

    /**
     * 执行重发前置处理
     *
     * @param queueWrapper
     * @param message
     */
    void preReSendInvoke(QueueWrapper queueWrapper, Message message);

    /**
     * 执行重发后置处理
     *
     * @param queueWrapper
     * @param message
     */
    void postReSendInvoke(QueueWrapper queueWrapper, Message message);

    /**
     * 执行前置触发
     *
     * @param queueWrapper
     * @param message
     */
    void preConsumeInvoke(QueueWrapper queueWrapper, Message message);

    /**
     * 执行后置处理
     *
     * @param queueWrapper
     * @param message
     */
    void postConsumeInvoke(QueueWrapper queueWrapper, Message message);

    /**
     * 执行重发前置处理
     *
     * @param queueWrapper
     * @param message
     */
    void preReConsumeInvoke(QueueWrapper queueWrapper, Message message);

    /**
     * 执行重发后置处理
     *
     * @param queueWrapper
     * @param message
     */
    void postReConsumeInvoke(QueueWrapper queueWrapper, Message message);
}
